//=============================================================================

#ifndef ACAMERA_H
  #define ACAMERA_H

//=============================================================================

#include <windows.h>
#include <gl/glu.h>
#include "doCommon.h"

//=============================================================================

class aCamera
{
  public:
      inline void acLookAt()    {gluLookAt(position.x, position.y, position.z, viewPoint.x, viewPoint.y, viewPoint.z, upVector.x, upVector.y, upVector.z);}
      inline aVector acGetPos() {return position;}

    aCamera();
      void acSetCamera(const aVector& vec, const aVector& vec2, const aVector& vec3);
      void acMoveCamera(float speed);
      void acRotateCamera(float angle, float x, float y, float z);
      void acCheckMouse(int x, int y);
      void acUpdateCamera(int x, int y);
      void acStrafeCamera(float speed);
      void acMoveUp(float speed);
    ~aCamera();

  private:
    aVector position;
    aVector viewPoint;
    aVector upVector;
    aVector strafeVector;
};

//=============================================================================

#endif

//=============================================================================
